#ifndef __HANDLE_H__
#define __HANDLE_H__
#include "base.h"
//IHandle

class IHandle
{
protected:
	thread* m_pthread;
	typedef void (IHandle::*handle)();
public:
	IHandle();
	virtual ~IHandle();
	void go(handle h);
};
//CollectHandle
class CollectHandle :
	public IHandle
{
public:
	typedef void (IHandle::*handle)(int);
	CollectHandle() {};
	virtual ~CollectHandle() {};
	void go(handle h, int i);
};
//--CollectHandle

//MixHandle
class MixHandle :
	public IHandle
{
public:
	MixHandle() {};
	virtual ~MixHandle() {};
};
//--MixHandle

//MuxHandle
class MuxerHandle :
	public IHandle
{
private:
	thread* m_thread2[2];
public:
	MuxerHandle();
	virtual ~MuxerHandle();	
	void go(handle h, muxHandleType);
};
//--MuxHandle

class VCaptureHandle :
	public IHandle
{
private:
	thread* m_thread2[2];
public:
	VCaptureHandle();
	virtual ~VCaptureHandle();
	void go(handle h);
};
#endif
